package com.jerei.plugin.service;

import com.alibaba.fastjson.JSONArray;
import com.jerei.plugin.entity.WcmCommonMenuDetail;
import com.jerei.utils.condition.ConditionEntity;
import com.jerei.utils.spring.PageBean;

import java.util.List;

/**
 * Created by sunfeihu on 2016/10/21.
 */
public interface IWcmCommonMenuDetailService {

    /**
     * 增加单条数据
     *
     * @param entity 要增加的实体
     */
    WcmCommonMenuDetail save(WcmCommonMenuDetail entity);

    /**
     * 删除单条数据
     *
     * @param id 数据主键ID
     */
    int delete(Long id);

    /**
     * 修改单条数据
     *
     * @param entity 要修改的实体
     */
    int update(WcmCommonMenuDetail entity);

    /**
     * 查询单条数据
     *
     * @param id 数据主键ID
     */
    WcmCommonMenuDetail find(Long id);

    /**
     * 增加多条数据
     *
     * @param list 多条数据实体集合
     */
    void save(List<WcmCommonMenuDetail> list);

    /**
     * 删除多条数据
     *
     * @param ids 多条数据主键ID集合
     */
    void delete(List<Long> ids);


    /**
     * 修改多条数据
     *
     * @param list 多条数据实体集合
     */
    void update(List<WcmCommonMenuDetail> list);

    /**
     * 获取分页数据
     *
     * @param nowPage         当前页
     * @param pageSize        分页大小
     * @param conditionEntity 条件查询器
     * @return 分页对象
     */
    PageBean<WcmCommonMenuDetail> page(int nowPage, int pageSize, ConditionEntity conditionEntity);

    /**
     * 获取开发者根菜单
     *
     * @param nowPage
     * @param pageSize
     * @return
     */
    PageBean<WcmCommonMenuDetail> devRootMenuDetail(int nowPage, int pageSize);

    /**
     * 获取站群根菜单
     *
     * @param nowPage  当前页
     * @param pageSize 页大小
     * @param gid      站群ID
     * @return
     */
    PageBean<WcmCommonMenuDetail> groupRootMenuDetail(int nowPage, int pageSize, Long gid);

    /**
     * 查询父菜单下的树形结构
     *
     * @param pid
     * @return 树结构格式
     */
    JSONArray treeMenuDetail(Long pid);
}